1. Technical Field
The present invention relates in general to grid environments and in particular to managing errors in a grid environment. Still more particularly, the present invention relates to managing analysis of errors indicating degraded service in a grid environment, such that clients in a grid environment are provided with a response when the grid environment is operating at suboptimal conditions.
2. Description of the Related Art
Ever since the first connection was made between two computer systems, new ways of transferring data, resources, and other information between two computer systems via a connection continue to develop. In a typical network architecture, when two computer systems are exchanging data via a connection, one of the computer systems is considered a client sending requests and the other is considered a server processing the requests and returning results. In an effort to increase the speed at which requests are handled, server systems continue to expand in size and speed. Further, in an effort to handle peak periods when multiple requests are arriving every second, server systems are often joined together as a group and requests are distributed among the grouped servers. Multiple methods of grouping servers have developed such as clustering, multi-system shared data (sysplex) environments, and enterprise systems. With a cluster of servers, one server is typically designated to manage distribution of incoming requests and outgoing responses. The other servers typically operate in parallel to handle the distributed requests from clients. Thus, one of multiple servers in a cluster may service a client request without the client detecting that a cluster of servers is processing the request.
Typically, servers or groups of servers operate on a particular network platform, such as Unix or some variation of Unix, and provide a hosting environment for running applications. Each network platform may provide functions ranging from database integration, clustering services, and security to workload management and problem determination. Each network platform typically offers different implementations, semantic behaviors, and application programming interfaces (APIs).
Merely grouping servers together to expand processing power, however, is a limited method of improving efficiency of response times in a network. Thus, increasingly, within a company network, rather than just grouping servers, servers and groups of server systems are organized as distributed resources. There is an increased effort to collaborate, share data, share cycles, and improve other modes of interaction among servers within a company network and outside the company network. Further, there is an increased effort to outsource nonessential elements from one company network to that of a service provider network. Moreover, there is a movement to coordinate resource sharing between resources that are not subject to the same management system, but still address issues of security, policy, payment, and membership. For example, resources on an individual's desktop are not typically subject to the same management system as resources of a company server cluster. Even different administrative groups within a company network may implement distinct management systems.
The problems with decentralizing the resources available from servers and other computing systems operating on different network platforms, located in different regions, with different security protocols and each controlled by a different management system, have led to the development of Grid technologies using open standards for operating a grid environment. Grid environments support the sharing and coordinated use of diverse resources in dynamic, distributed, virtual organizations. A virtual organization is created within a grid environment when a selection of resources from geographically distributed systems operated by different organizations with differing policies and management systems is organized to handle a job request.
An important attribute of a grid environment that distinguishes a grid environment from merely that of another management system is quality of service maintained across multiple diverse sets of resources. A grid environment preferably does more than just provide resources; a grid environment provides resources with a particular level of service including response time, throughput, availability, security, and the co-allocation of multiple resource types to meet complex user demands.
A reality of network systems in a grid environment, however, is that clients requesting services and resources handling services may fail or degrade in some way. Further, the reality of network systems in a grid environment is that networks may become overloaded with traffic. In essence, when some part of the grid environment is working at a suboptimal level, errors occur because clients receive a degraded service in some manner.
In a typical client/server system or cluster system, limited error management systems only monitor for operating conditions of server systems as a whole and only respond to catastrophic errors rather than checking for a malfunction of a particular component of a server system. In addition, a typical cluster system is self-contained and thus any limited error management is handled by logic at the network layer level, such as the TCP/IP layer level. In a grid environment, however, a failed server system is not the only type of error that needs to be handled; errors may occur in a grid environment as a result of any service degradation in a grid environment. Further, in a grid environment, as opposed to a cluster system, multiple heterogeneous systems are combined such that limited error management at the network layer level is insufficient.
Thus, when there is suboptimal performance within a grid environment, an issue arises of how to maintain the quality of service and handle the diversity of errors that may occur across diverse system. Therefore, it would be advantageous to provide a management agent within a grid environment that may be triggered by any of multiple systems operating within a grid environment when an error occurs, wherein the management agent evaluates the error message and generates responses to the error. Further, it would be advantageous to provide a management agent within a grid environment that may be triggered by errors resulting from suboptimal performance, rather than only complete failure of performance.